23

» WarCraft 3 / Скрытые файлы MPQ

Похожие вопросы:

ответ
Diaboliko, у предметов с этим бага
юзай юнитов
с ними намного проще
  1. mpq
ответ
Скачиваешь этот файл: xgm.guru/files/100/179980/comments/336580/War3Patch.txt
Далее открываешь архив War3Patch.mpq в редакторе mpq (например Ladik's MPQ Editor) и используешь файл в качестве listfile.
Модель будет лежать по этому пути: Units\Creeps\HeroTinker\HeroTinker.mdx
ответ
Maolink, тут скорее всего все вшито на уровне движка, Расса выбирается только до игры, в игре уже никак сменить низя.
ответ
Ev3nt:
Андрей17, это файл не является бинарным 0.0. Откройте с помощью, к примеру, NotePad++.
Я и написал что он бинарник не работает и работаю с war3map.j!

Проверил MPQ Master; засунул и высунул в карту war3map.j и полёт нормальный ничего не сломалось!

23

» Администрация XGM / Как удалить аккаунт?

Похожие вопросы:

ответ
Если хочешь, твои проекты и блог мы можем удалить.
ответ
Никак. Это уже много раз обсуждалось. На сайте нет возможности удалить аккаунт. Сайту всегда нужны пользователи! Часть сайта, часть сообщества!
ответ
Без явных доказательств принадлежности этого аккаунта - никак. Есть есть, то просьба обратиться в личку или через форму обратной связи (с указание контактного почтового адреса)
ответ
Сделано, можешь привязывать
ответ
Написать в техподдержку.

23

» WarCraft 3 / Утечка памяти

Похожие вопросы:

ответ
~8gabriel8:
Вот карта, где есть удаление отрядов игроков:

По идее на стороннем ресурсе есть эти темы про удаление утечек:
Но при беглом осмотре не увидел там информации, которую ты здесь спрашиваешь.
ответ
PAMEXI:
makkad:
А может ли быть дело не в триггерах, а к примеру в моделях? Кто нибудь когда нибудь сталкивался с фризами из-за используемых моделей?
Это звучит глупа... Фризы из-за модели...
Тем не менее, попробовал удалить весь импорт из карты (около 6 МБ, 157 файлов mdx). Лаги и фризы прекратились. Сейчас дихотомией пробую найти проблемную модель. Хотя может проблемная модель и не одна, или например может быть накапливаемый эффект, который так не найти.

Сильно уменьшил число лагов, избавившись от двух моделей. Эти модели ещё и сами по себе вели себя странно. В частности, фундамент из модели Домика произвольно прикреплялся к анимациям других моделей. А модель Академии иногда меняла свой видимый масштаб без причины.
Вставил эти модели в пример xgm.guru/files/100/244875/comments/448654/Models.w3m, где видны эти артефакты
Модели скачивал от сюда:
ответ
сорян за некропост, но дам ответ на данный вопрос, т.к. появились нужные знания
эта функция утечна на 1.26, а точнее сам локальный звук, поэтому лучше юзать глобалки заготовленные и ресайкл систему, но там настолько ущербная утечка, что её можно и проигнорить в принципе
ответ
Пока юнит разлагается и ты видишь на земле труп, юнит занимает место в памяти, если же юнит разложился -то его уже нет и память он не занимает.
Разумеется в картах типа товер дефенсов имеет смысл сокращать время сокращения или делать суммонами, чтобы после смерти они исчезали не оставляя трупы - вспомните что происходит с духами волков после их убийства. Но тут палка о двух концах, юниты могут наносить урон и убивать других юнитов - так вот если какой нить самон плюнет во врага и сдохет, а тычка долетит до цели через некоторое время и убьет - убивший юнит будет равен null, в доте есть такой баг, змейки веномансера имеют ядовитую атаку и часто обеспечивают суецид врагам, не давая бабки за фраг их хозяину.
ответ
Ну я сегодня за кэпа, обьясню вкратце:
Утечки - это необнуленные переменные и всякий прочий темпо-мусор, который засоряет собой оперативку игры.
Многие функции ГУИ(триггеров) содержат в себе незначительные утечки - к примеру всякие математические функции, некоторые же содержат значительные утечки - например, функция "двигать в точку" создает целый обьект "локация", который там и остается, а по хорошему должен быть удален.
Обычно, это все не важно, если ты не создаешь сложных триггеров с малым интервалом. Например, у тебя есть способность "блинк", которая триггерно двигает юнита в точку - от такой способности не создастся так много точек, что у тебя начнет тормозить игра, даже за час непрерывного спама.
А вот если у тебя есть способность, которая двигает юнита таким образом каждые 0.01 сек (в течение 1 секунды он плавно летит, к примеру) - то тут лучше бы за собой убирать.
Когда ты поймешь насколько утечные ГУИ функции, ты начнешь постепенно переходить на Джасс, а когда ты поймешь насколько много текста на джассе ты должен напечатать даже для того чтобы просто нанести урон в области и навесить эффект - на этом моменте тебе расхочется делать карты.)

23

» WarCraft 3 / WarDota4

Ваш ресурс не прошёл автомодерацию. Пожалуйста, внесите исправления или ожидайте проверки модератором.
Причина
Должен присутствовать файл одного из типов: exe, bat, msi, apk, cmd, com, csh, ipa, ksh, osx, out, paf, ps1, run, zip, 7z, rar, tar, gz, gzip, jar, lzip, tgz, tbz2, bz2, zipx, zz, dmg, ipg, z, iso
Your resource has not passed automoderation. Please make corrections or wait for the moderator to check.
Reason
There must be a file of one of the following types: exe, bat, msi, apk, cmd, com, csh, ipa, ksh, osx, out, paf, ps1, run, zip, 7z, rar, tar, gz, gzip, jar, lzip, tgz, tbz2, bz2, zipx, zz, dmg, ipg, z, iso
// CID1
23

» WarCraft 3 / Меняется патч карты с 1.26 на 1.31

Похожие вопросы:

ответ
Не сов сем по теме, но близко - вот такое можно реализовать на новых функциях 1.31
Увы, полноценного инвентаря на аналогичных функциях пока не выкладывали в общий доступ, каждый пилит себе свою версию.

23

» WarCraft 3 / Чужие модели

Похожие вопросы:

ответ
при указании ника автора в разделе авторы и нормальном оформлении можно
и естественно при отсутствие претензий со стороны автора
ответ
Бордер, xgm.guru/p/wc3/various_textures
Ищи через гугл "xgm.guru [то, что тебе надо]", это имхо удобнее местного поиска, да
Только имхо это все равно не оч:
  • многовато геморроя
  • способ подразумевает каст дамми абилки, а это опять же срабатывания всяких "юнит кастит абилку" и бла-бла-бла
  • ну и хотя мелочь - баг после сейва, он там описан
проще тупо несколько юнитов с разными текстурами сделать и смириться с кол-вом занимаемого места и/или необходимостью прелоада, зато всё будет шито-крыто
ответ
Linour:
Доставай модели не из депротекченой кампании, а MPQ эдитором. Просто открой в нём кампанию и ищи нужные модели/текстуры
ответ
~8gabriel8:
Теоретически можно было бы прикрепить голову и руки к аттачам head, left_hand, right_hand. Но не знаю, чётко ли у этих моделей двигаются крепления.
ответ
Допустим есть модель, вот она работает в редакторе, а потом просто не работает - и да, именно так все происходит.
Будет работать после первой проверки карты.
Также нужно проверить правильность импорта модели.

23

» WarCraft 3 / Активность?

Похожие вопросы:

ответ
идем читать статьи
ищем фразы - запретить заклинание, спелл бук, триггеры
ответ
Ну вылет у тебя на функции, которая занимается отрисовкой графики. Она универсальная, там и частицы обрабатываются, и поверхности. Так что ошибка явно в модели, а какой и как - хрен его знает
ответ
Дать герою на время способность спел бука в котором будет вампиризм или как-то так.
ответ
Триггерно. Ловишь событие применения предмета, даешь скрытую в спэллбуке способность змеиная ловкость, подрубаешь таймер, по истечению таймера удаляешь способность.

23

» Администрация XGM / Не отображается изображение

Похожие вопросы:

ответ
Исправили
ответ
Это связано с xgm.guru/p/117/Bag-s-prevyu-s98
Поменяй ссылки на существующие файлы
ответ
У меня не вопроизводится. Попробовал по-разному - и с новыми комментами, и с текущими. И в репосте и в оригинале.
Если будет возможность уточнить шаги воспроизведения - переоткрывай.

23

» WarCraft 3 / Чтение памяти игры

Похожие вопросы:

ответ
По мемхаку 127b из всех кого я знаю, может помочь только quq_CCCP, но не уверен что он сможет в поиск оффсетов.
Есть способ попробовать по аналогии с 126 патчем искать оффсеты, и как научитесь то в 127 скорее всего так же будет.
В целом тот мемхак, который работает на 127b я видел только изменение брони и всё.. Я не сильно в этом уверен, но кажется, что ничего не выйдет путнего =(

23

» WarCraft 3 / Патч игры

Похожие вопросы:

ответ
~8gabriel8:
niBeHb, а если в оконном режиме игру запустить, то тоже чёрный экран?
Чтобы запустить в окне, нужно в ярлыке добавить -window.
ответ
Возможно в мемхаке есть такая возможность. А так - только 1.31.
ответ
ThatGuyFromBar, проверь.
После удаления этой кнопки лично у меня вылетов больше не было. Может багованная модель или попкорновский эффект, а может триггер, который на ней висит, хз.
Попробуй выделить весь декор и поднять с помощью CTRL+PageUp, авось с отриательной z работать не хотит.
На кнопке поднятие попробовал, всё равно вылетает

Updt. Снёс всё попкорн эмиттеры с модели кнопки, и переимпортировал в карту. Вроде работает
ответ
Через локальную сеть

23

» WarCraft 3 / HD&SD Reforged

Похожие вопросы:

ответ
Прикрепляю блп. Видимых проблем нет.

Nelloy, создавай через CreateUbersplat(x, 0, 'Adrt', 255, 255, 255, 255, true, true)
ответ
в рефе в менеджере импорта появилась новое поле HD /SD импортируем обе модели, называем одинакого, а в списке переключаем версию графики, всё, этого достаточно.
Если вы каким то чудом не работаете в редакторе то в режиме папки у вас будет _HD.w3mod туда кидаете все HD модели, а sd модели в корень, разумеется имена должны полностью повторяться, если подели лежат в подпапке, то должно быть _HD.w3mod\models\model.mdx для HD версии и в корне игры должно быть так, models\model.mdx для SD модели

23

» WarCraft 3 / Вопрос по моделькам

Похожие вопросы:

ответ
Модель я переименовал в rifleman и засунул в его папку в war3.mpq
Может быть прописать путь текстуры для модели так же как у rifleman?
ответ
Всё. Понял в чём проблема
ответ
  1. Хорошая модель должна иметь минимальное необходимое количество полигонов. Что будет если заспавнить много юнитов можешь проверить и сам.
  1. 8 Мб - лимит для патчей до версии 1.26. В последнем патче карта может весить 100+ Мб. О скорости скачивания ничего не могу сказать.
ответ
Насколько я понял, тебе нужно просто сменить текстуру. Для этого тебе по меньшей мере нужна текстура. Можно взять либо стандартную, либо создать самому (что довольно просто, если знать как).
Чтобы создать текстуру, возьми любое изображение, открой его в ФШ и сохрани как tga 32 бит с размером до 512х512 (вроде бы можно делать любой размер, не превышающий 1024х768, но я советую сохранять пропорции и делать размер не больше 512х512, или кратных половине этого числа (256/128/64/32) , за тем открой в War3 Image Extractor и переведи формат tga в blp. Потом открываешь модельку - редактор текстур и переименовываешь нужную текстуру в ту которая тебе нужна (они должны быть в одной папке) жмешь - Enter - .
ответ
LainMikoroso, Сценарий - > Параметры Карты -> Нестандартное освещение (Ставим галочку) -> Выбираем подходящее
совет: учите инструментарий, без этого никуда

23

» WarCraft 3 / Проверка по баффу

Похожие вопросы:

ответ
Объясню, почему я удалил код: после проведённого за кодом времени, я понял, что сильно погорячился, задав такой глупый вопрос. Стоило отдохнуть, проветрить голову, и решение нашлось. Тем, кто столкнулся с хоть самую малость, но похожей проблемой, дам совет: всегда проверяйте соответствия заклинаний, написанных в коде jass (CTRL + D, если кто не знает, как узнать id заклинания) и ,конечно, сам синтаксис. Также посоветую не утраивать "свалку" в коде, как это сделал я. В общем, если кому интересно, как я решил проблему, пишите - расскажу или даже помогу если у вас она схожая.(Всё дело во внимательности)...
Сброшу код триггера таким, каким я его хотел видеть изначально:
function MU_Check_lvl_four takes nothing returns boolean
    if ( not ( GetUnitAbilityLevelSwapped('A011', udg_Akame_Killer) == 4 ) ) then
        return false
    endif
    return true
endfunction

function MU_Check_lvl_three takes nothing returns boolean
    if ( not ( GetUnitAbilityLevelSwapped('A011', udg_Akame_Killer) == 3 ) ) then
        return false
    endif
    return true
endfunction

function MU_Check_lvl_two takes nothing returns boolean
    if ( not ( GetUnitAbilityLevelSwapped('A011', udg_Akame_Killer) == 2 ) ) then
        return false
    endif
    return true
endfunction

function MU_Check_lvl_one takes nothing returns boolean
    if ( not ( GetUnitAbilityLevelSwapped('A011', udg_Akame_Killer) == 1 ) ) then
        return false
    endif
    return true
endfunction

function MU_Second_Conditions takes nothing returns boolean
    if ( not ( UnitHasBuffBJ(GetEventDamageSource(), 'B008') == true ) ) then
        return false
    endif
    if ( not ( GetEventDamageSource() == udg_Akame_Killer ) ) then
        return false
    endif
    return true
endfunction

function MU_Start_Conditions takes nothing returns boolean
    if ( not ( UnitHasBuffBJ(GetAttacker(), 'B008') == true ) ) then
        return false
    endif
    if ( not ( GetAttacker() == udg_Akame_Killer ) ) then
        return false
    endif
    return true
endfunction

function Trig_MU_Conditions takes nothing returns boolean
    if ( not MU_Start_Conditions() ) then
        return false
    endif
    return true
endfunction

function MU_Venum_Check takes nothing returns boolean
    if ( not ( udg_MU_Venum_counter == 2 ) ) then
        return false
    endif
    return true
endfunction

function MU_del takes nothing returns nothing 
    if ( MU_Check_lvl_one() ) then
        call SetPlayerAbilityAvailableBJ( true, 'A00X', GetOwningPlayer(GetEventDamageSource()) )
        call UnitRemoveAbilityBJ( 'A00X', GetEventDamageSource() )
    else
        if ( MU_Check_lvl_two() ) then
            call SetPlayerAbilityAvailableBJ( true, 'A00U', GetOwningPlayer(GetEventDamageSource()) )
            call UnitRemoveAbilityBJ( 'A00U', GetEventDamageSource() )
        else
            if ( MU_Check_lvl_three() ) then
                call SetPlayerAbilityAvailableBJ( true, 'A00Y', GetOwningPlayer(GetEventDamageSource()) )
                call UnitRemoveAbilityBJ( 'A00Y', GetEventDamageSource() )
            else
                if ( MU_Check_lvl_four() ) then
                    call SetPlayerAbilityAvailableBJ( true, 'A013', GetOwningPlayer(GetEventDamageSource()) )
                    call UnitRemoveAbilityBJ( 'A013', GetEventDamageSource() )
                else
                    call DoNothing(  )
                endif
            endif
        endif
    endif
endfunction


function Trig_MU_Actions takes nothing returns nothing
    call DestroyTrigger(udg_MU_trig)
    set udg_MU_Venum_counter = GetRandomInt(1, 5)
    set udg_MU_TG = GetAttackedUnitBJ()
    if ( MU_Venum_Check() ) then
        if ( MU_Check_lvl_one() ) then
        call UnitAddAbilityBJ( 'A00X', udg_Akame_Killer )
        call SetPlayerAbilityAvailableBJ( false, 'A00X', GetOwningPlayer(udg_Akame_Killer) )
    else
        if ( MU_Check_lvl_two() ) then
            call UnitAddAbilityBJ( 'A00U', udg_Akame_Killer )
            call SetPlayerAbilityAvailableBJ( false, 'A00U', GetOwningPlayer(udg_Akame_Killer) )
        else
            if ( MU_Check_lvl_three() ) then
                call UnitAddAbilityBJ( 'A00Y', udg_Akame_Killer )
                call SetPlayerAbilityAvailableBJ( false, 'A00Y', GetOwningPlayer(udg_Akame_Killer) )
            else
                if ( MU_Check_lvl_four() ) then
                    call UnitAddAbilityBJ( 'A013', udg_Akame_Killer )
                    call SetPlayerAbilityAvailableBJ( false, 'A013', GetOwningPlayer(udg_Akame_Killer) )
                else
                    call DoNothing(  )
                endif
            endif
        endif
    endif
    set udg_MU_trig = CreateTrigger()
    call TriggerRegisterUnitEvent( udg_MU_trig, udg_MU_TG, EVENT_UNIT_DAMAGED )
    call TriggerAddCondition( udg_MU_trig, Condition( function MU_Second_Conditions ) )
    call TriggerAddAction( udg_MU_trig, function MU_del )
    else
        call DoNothing(  )
    endif
endfunction

//===========================================================================
function InitTrig_MU takes nothing returns nothing
    set gg_trg_MU = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_MU, EVENT_PLAYER_UNIT_ATTACKED )
    call TriggerAddCondition( gg_trg_MU, Condition( function Trig_MU_Conditions ) )
    call TriggerAddAction( gg_trg_MU, function Trig_MU_Actions )
endfunction
Суть триггера:
Имеется способность с четырьмя уровнями. На каждом уровне урон способности разный, а шанс срабатывания всегда 25%. При атаке герой, имеющий такую способность имеет шанс (25%) на отравление противника.
Переменная udg_Akame_killer равносильна GetEventDamageSource()
P.S. Возможно кому-то даже пригодится этот код... Сделан полнейшим неумехой в плане jass, так что не судите строго!
ответ
XGM Bot:
Похожие вопросы:

ответ
Farrien, summoned unit.
Хоть жезл, хоть абилка блейдмастера.


23

» WarCraft 3 / Не работает триггер

Похожие вопросы:

ответ
Событие "применяет способность" произойдет только если вручную нажать на способность ледяной стрелы и на врага. При авто атаках событие работать не будет.

В будущем для проверки таких моментов пользуйтесь дебагом. В данном случае нужно отключить условие и выводить имя юнита тригера, тогда бы вы увидели что когда примнешь способность имя юнита выводится в чат, а когда он автоатачит, то имя не выводится, что означало бы что триггер не срабатывает, не срабатывает событие
ответ
В данном примере под владельцем юнита система понимает изначально кому принадлежал юнит. Триггер не работает после того как здание поменяло владельца. Рабочим способом будет сделать условие проверки принадлежности юнита как показано на скриншоте:
ответ
Не "триггерный юнит" а "соответствующий юнит" (Matching Unit).
У тебя нет триггерного юнита, ты выбираешь группу с дополнительным условием соответствия, а значит надо использовать соответствующую переменную.